Autogenerated HTML docs for v1.7.11.1-104-ge7b44 
diff --git a/RelNotes/1.7.12.txt b/RelNotes/1.7.12.txt index 79cbb56..f49eef5 100644 --- a/RelNotes/1.7.12.txt +++ b/RelNotes/1.7.12.txt 
@@ -20,6 +20,20 @@  the wire, so that the server log can be examined to see the vintage  distribution of clients.   + * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after + each commit in the resulting history. + + * "git status" gives finer classification to various states of paths + in conflicted state and offer advice messages in its output. + + * "git submodule" learned to deal with nested submodule structure + where a module is contained within a module whose origin is + specified as a relative URL to its superproject's origin. + + * A rather heavy-ish "git completion" script has been split to create + a separate "git prompting" script, to help lazy-autoloading of the + completion part while making prompting part always available. +    Foreign Interface   @@ -31,6 +45,14 @@  * We no longer use AsciiDoc7 syntax in our documentation and favor a  more modern style.   + * "git index-pack" and "git pack-objects" use streaming API to read + from the object store to avoid having to hold a large blob object + in-core while they are doing their thing. + + * Code to match paths with exclude patterns learned to avoid calling + fnmatch() by comparing fixed leading substring literally when + possible. +    Also contains minor documentation updates and code clean-ups.   @@ -42,6 +64,27 @@  releases are contained in this release (see release notes to them for  details).   + * When "git log" gets "--simplify-merges/by-decoration" together with + "--first-parent", the combination of these options makes the + simplification logic to use in-core commit objects that haven't + been examined for relevance, either producing incorrect result or + taking too long to produce any output. Teach the simplification + logic to ignore commits that the first-parent traversal logic + ignored when both are in effect to work around the issue. + (merge 6e513ba jc/rev-list-simplify-merges-first-parent later to maint). + + * "git add" allows adding a regular file to the path where a + submodule used to exist, but "git update-index" does not allow an + equivalent operation to Porcelain writers. + (merge 242f55f hv/submodule-update-nuke-submodules later to maint). + + * "git diff --no-index" did not work with pagers correctly. + (merge af63b54 jk/diff-no-index-pager later to maint). + + * "git diff COPYING HEAD:COPYING" gave a nonsense error message that + claimed that the treeish HEAD did not have COPYING in it. + (merge 023e37c mm/verify-filename-fix later to maint). +  * The documentation for "git cherry-pick A B..C" was misleading.  (merge b98878e cn/cherry-pick-range-docs later to maint).   
diff --git a/config.txt b/config.txt index 915cb5a..ccce4f6 100644 --- a/config.txt +++ b/config.txt 
@@ -159,9 +159,10 @@ 	specified a refspec that isn't your current branch) and 	it resulted in a non-fast-forward error. 	statusHints:: -	Directions on how to stage/unstage/add shown in the -	output of linkgit:git-status[1] and the template shown -	when writing commit messages. +	Show directions on how to proceed from the current +	state in the output of linkgit:git-status[1] and in +	the template shown when writing commit messages in +	linkgit:git-commit[1]. 	commitBeforeMerge:: 	Advice shown when linkgit:git-merge[1] refuses to 	merge to avoid overwriting local changes. 
diff --git a/git-config.html b/git-config.html index d7d431c..fb90728 100644 --- a/git-config.html +++ b/git-config.html 
@@ -1251,9 +1251,10 @@  </dt>   <dd>   <p>  - Directions on how to stage/unstage/add shown in the  - output of <a href="git-status.html">git-status(1)</a> and the template shown  - when writing commit messages.  + Show directions on how to proceed from the current  + state in the output of <a href="git-status.html">git-status(1)</a> and in  + the template shown when writing commit messages in  + <a href="git-commit.html">git-commit(1)</a>.   </p>   </dd>   <dt class="hdlist1">  
diff --git a/git-rebase.html b/git-rebase.html index be5037d..983f8c8 100644 --- a/git-rebase.html +++ b/git-rebase.html 
@@ -583,9 +583,9 @@  <h2 id="_synopsis">SYNOPSIS</h2>   <div class="sectionbody">   <div class="verseblock">  -<div class="verseblock-content"><em>git rebase</em> [-i | --interactive] [options] [--onto &lt;newbase&gt;]  +<div class="verseblock-content"><em>git rebase</em> [-i | --interactive] [options] [--exec &lt;cmd&gt;] [--onto &lt;newbase&gt;]   [&lt;upstream&gt;] [&lt;branch&gt;]  -<em>git rebase</em> [-i | --interactive] [options] --onto &lt;newbase&gt;  +<em>git rebase</em> [-i | --interactive] [options] [--exec &lt;cmd&gt;] --onto &lt;newbase&gt;   --root [&lt;branch&gt;]   <em>git rebase</em> --continue | --skip | --abort</div>   <div class="verseblock-attribution">  @@ -782,7 +782,7 @@  <div class="sectionbody">   <div class="dlist"><dl>   <dt class="hdlist1">  -&lt;newbase&gt;  +--onto &lt;newbase&gt;   </dt>   <dd>   <p>  @@ -1043,6 +1043,35 @@  idea unless you know what you are doing (see BUGS below).</p></div>   </dd>   <dt class="hdlist1">  +-x &lt;cmd&gt;  +</dt>  +<dt class="hdlist1">  +--exec &lt;cmd&gt;  +</dt>  +<dd>  +<p>  + Append "exec &lt;cmd&gt;" after each line creating a commit in the  + final history. &lt;cmd&gt; will be interpreted as one or more shell  + commands.  +</p>  +<div class="paragraph"><p>This option can only be used with the <tt>--interactive</tt> option  +(see INTERACTIVE MODE below).</p></div>  +<div class="paragraph"><p>You may execute several commands by either using one instance of <tt>--exec</tt>  +with several commands:</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>git rebase -i --exec "cmd1 &amp;&amp; cmd2 &amp;&amp; ..."</tt></pre>  +</div></div>  +<div class="paragraph"><p>or by giving more than one <tt>--exec</tt>:</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><tt>git rebase -i --exec "cmd1" --exec "cmd2" --exec ...</tt></pre>  +</div></div>  +<div class="paragraph"><p>If <tt>--autosquash</tt> is used, "exec" lines will not be appended for  +the intermediate commits, and will only appear at the end of each  +squash/fixup series.</p></div>  +</dd>  +<dt class="hdlist1">   --root   </dt>   <dd>  @@ -1440,6 +1469,23 @@  in <tt>$SHELL</tt>, or the default shell if <tt>$SHELL</tt> is not set), so you can   use shell features (like "cd", "&gt;", ";" &#8230;). The command is run from   the root of the working tree.</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>$ git rebase -i --exec "make test"</tt></pre>  +</div></div>  +<div class="paragraph"><p>This command lets you check that intermediate commits are compilable.  +The todo list becomes like that:</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><tt>pick 5928aea one  +exec make test  +pick 04d0fda two  +exec make test  +pick ba46169 three  +exec make test  +pick f4593f9 four  +exec make test</tt></pre>  +</div></div>   </div>   <h2 id="_splitting_commits">SPLITTING COMMITS</h2>   <div class="sectionbody">  @@ -1657,7 +1703,7 @@  <div id="footnotes"><hr /></div>   <div id="footer">   <div id="footer-text">  -Last updated 2012-05-02 15:00:44 PDT  +Last updated 2012-06-28 16:04:22 PDT   </div>   </div>   </body>  
diff --git a/git-rebase.txt b/git-rebase.txt index 147fa1a..2d71e4b 100644 --- a/git-rebase.txt +++ b/git-rebase.txt 
@@ -8,9 +8,9 @@  SYNOPSIS  --------  [verse] -'git rebase' [-i | --interactive] [options] [--onto <newbase>] +'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] 	[<upstream>] [<branch>] -'git rebase' [-i | --interactive] [options] --onto <newbase> +'git rebase' [-i | --interactive] [options] [--exec <cmd>] --onto <newbase> 	--root [<branch>]  'git rebase' --continue | --skip | --abort   @@ -210,7 +210,7 @@    OPTIONS  ------- -<newbase>:: +--onto <newbase>:: 	Starting point at which to create the new commits. If the 	--onto option is not specified, the starting point is 	<upstream>. May be any valid commit, and not just an @@ -344,6 +344,27 @@  with the `--interactive` option explicitly is generally not a good  idea unless you know what you are doing (see BUGS below).   +-x <cmd>:: +--exec <cmd>:: +	Append "exec <cmd>" after each line creating a commit in the +	final history. <cmd> will be interpreted as one or more shell +	commands. ++ +This option can only be used with the `--interactive` option +(see INTERACTIVE MODE below). ++ +You may execute several commands by either using one instance of `--exec` +with several commands: ++ +	git rebase -i --exec "cmd1 && cmd2 && ..." ++ +or by giving more than one `--exec`: ++ +	git rebase -i --exec "cmd1" --exec "cmd2" --exec ... ++ +If `--autosquash` is used, "exec" lines will not be appended for +the intermediate commits, and will only appear at the end of each +squash/fixup series.    --root:: 	Rebase all commits reachable from <branch>, instead of @@ -521,6 +542,24 @@  use shell features (like "cd", ">", ";" ...). The command is run from  the root of the working tree.   +---------------------------------- +$ git rebase -i --exec "make test" +---------------------------------- + +This command lets you check that intermediate commits are compilable. +The todo list becomes like that: + +-------------------- +pick 5928aea one +exec make test +pick 04d0fda two +exec make test +pick ba46169 three +exec make test +pick f4593f9 four +exec make test +-------------------- +  SPLITTING COMMITS  -----------------